<?php
	include("../util.php");
	include("../config.inc.php");
	include("../clases.php");

	session_start();

if(!$_SESSION["obj_sesion"]->compruebaAcceso("ADME")){	
	echo "<script language='javascript'>location.href='salir.php'</script>";
		die(); }
		

switch($_REQUEST["action"]){

/*#######################################################################################################################################################*/
/*########################################################################  GRID  #######################################################################*/
/*#######################################################################################################################################################*/

	case 'grid':{
		$page = $_GET['page']; // get the requested page
		$limit = $_GET['rows']; // get how many rows we want to have into the grid 
		$sidx = $_GET['sidx']; // get index row - i.e. user click to sort 
		$sord = $_GET['sord']; // get the direction 
		if(!$sidx) $sidx =1; 
		descodificar_utf8_array($_GET);
		$campos = array('id_producto','nombre','proveedor','udsxcaja','unidades_palet', 'ean'); //Nombre de los campos que se van a buscar en la consulta
		$traductor = array('m.id_producto','m.nombre','p.nombre','m.udsxcaja','m.unidades_palet', 'ean');//Nombre de los campos en las tablas que se van a buscar en la consulta
		//Control de seguridad de comprueba si el usuario es "normal" o "superusuario" para acceder o no a las herramientas de la pagina
		if($_SESSION["obj_sesion"]->getTipo()=="Normal" ){
				$esNormal=true;
				$id_empresa=$_SESSION["obj_sesion"]->getid_empresa();
			} else  if($_SESSION["obj_sesion"]->getTipo()=="Superusuario" ){
				$esNormal=false;
			}
		if ($esNormal)
			$result = consultaSimple("productos","fecha_baja IS NULL and id_proveedor= ".$id_empresa,"","COUNT(*) AS count");
			else
			$result = consultaSimple("productos","fecha_baja IS NULL","","COUNT(*) AS count");
		
		
		//Cuenta las filas que se van a obtener de la consulta
		$count = $result['count']; 
		//Realiza las cuentas pertinentes para saber la paginacion
		if( $count >0 ) { 
			$total_pages = ceil($count/$limit); 
		} else { 
			$total_pages = 0;
		} 
		if ($page > $total_pages) 
			$page=$total_pages; 

		$start = $limit*$page - $limit;
		//Nombre de las tablas a las que se les va a realizar la consulta
		$table =" productos m, proveedores p";
		$where ="";
		//Comprueba el tipo de usuario que es para hacer las busquedas y que otros usuarios no puedan ver los datos que no son los suyos
		if ($esNormal)
			$where .="m.fecha_baja IS NULL and m.id_proveedor = p.id_proveedor and m.id_proveedor= ".$id_empresa;
		else
			$where .="m.fecha_baja IS NULL and m.id_proveedor = p.id_proveedor ";
		//Se configura la select para realizar la consulta cogiendo los campos y las traducciones insertadas anteriormente
		$select = 'm.id_producto AS id_producto'.formar_select_jqgrid($campos,$traductor);
		//Configura el where para realizar la consulta
		$where .= formar_where_jqgrid($campos,$traductor,$_GET);
		//Guarda en $result lo que devuelve la consulta
		$result = consultaMultiple($table,$where,"ORDER BY $sidx $sord LIMIT $start , $limit",$select);
		pasar_utf8_array($result);
		//Guarda en $responce los datos de la paginacion
		$responce->page = $page; 
		$responce->total = $total_pages; 
		$responce->records = $count; 
		//Guarda los datos obtenidos de la consulta en $responce
		for($i=0;$i<count($result);$i++){
			$responce->rows[$i]['id']=$result[$i]["id_producto"]; 
			for($x=0;$x<count($campos);$x++)
					$responce->rows[$i]['cell'][]=$result[$i][$campos[$x]];
		}
		//Devuelve $responce con codificacion json
		echo json_encode($responce); 
		die();
	}

/*#######################################################################################################################################################*/
/*##################################################################  FORMULARIO  #######################################################################*/
/*#######################################################################################################################################################*/

	case 'form':{ //Muestra el formulario de insercion y modificacion de los articulos
			$_action = "insertar";
			//Comprueba si la accion es modificar muestra los datos del articulo que quieres modificar
			if (isset($_REQUEST["id_producto"])){
				$_action = "modificar";
				$vector = consultaSimple("productos","id_producto=".$_REQUEST["id_producto"]);
				pasar_utf8_array($vector);
			}
					//Devuelve los proveedores de la tabla proveedores de la base de datos	
					$proveedor=consultaMultiple("proveedores","fecha_baja is null","","id_proveedor, nombre");
					pasar_utf8_array($proveedor);
					//Devuelve un array con el valor de la cantidad de filas que se van a obtener
					$cuent=consultaSimple("proveedores","fecha_baja is null","","COUNT(*) as cuenta");
					//Se pasa del array a una variable el numero de filas que se van a mostrar
					$cuentap=$cuent['cuenta'];
					//Controla que el usuario que va a realizar la insercion del articulo solo sea un "superusuario"
			if($_action=="insertar" && ( $_SESSION["obj_sesion"]->getTipo()!="Superusuario"))
				{//Muestra el mensaje de que no tiene los permisos suficientes como para realizar una insercion de articulo
					die('<fieldset style="width:95% ">
					<legend class="txt_normal"><b>Atencion</b></legend><center>
					No tiene permisos para crear productos, ya que su nivel de usuario es insuficiente.
					<br /><input type="button" onclick="volver()" value="Volver" />
					</center></fieldset>');}
			else 
					//Muestra el formulario de modificacion e insercion de articulo
				echo '<form id="form_datos" style="margin:0px;">
					<input type="hidden" id="id_producto" name="id_producto" value="'.$_REQUEST["id_producto"].'">
					<fieldset style="width:95%;">
					<legend class="txt_normal" ><b>Datos Producto</b></legend>
					<table border="0" cellpadding="3" cellspacing="2" width="95%" align="center" >
					<tr>
						<td class="txt_normal" width="20%" align="right"><div id="cont_nombre">Nombre (*)</div></td>
						<td style="text-align:left;"><input type="text" name="nombre" id="nombre" size="35" maxlength="100" value="'.utf8_decode($vector["nombre"]).'"></td>
					</tr>
					
					<tr>
						<td class="txt_normal" width="20%" align="right"><div id="cont_udsxcaja">Unidades Por Caja: </div></td>
						<td style="text-align:left;"><input onKeyPress="return comprobar_solonumeros(event);" type="text" name="udsxcaja" id="udsxcaja" size="35" maxlength="50" value="'.($vector["udsxcaja"]!=NULL?$vector["udsxcaja"]:'1').'"></td>
					</tr>
					<tr>
						<td class="txt_normal" width="20%" align="right"><div id="cont_unidades_palet">Cajas por Palet: (*)</div></td>
						<td style="text-align:left;"><input onKeyPress="return comprobar_solonumeros(event);" type="text" name="unidades_palet" id="unidades_palet" size="35" maxlength="50" value="'.($vector["unidades_palet"]!=NULL?$vector["unidades_palet"]:'1').'"></td>
					</tr>
					
					<tr>
						<td class="txt_normal" width="20%" align="right"> EAN: </td>
						<td style="text-align:left;"> <input onKeyPress="return comprobar_solonumeros(event);" type="text" name="ean" id="ean" size="35" maxlength="13" value="'.$vector["ean"].'"></td>				
					</tr>
					
					<tr>
						<td class="txt_normal" width="20%" align="right"><div id="cont_id_proveedor">Proveedor: (*)</div)</td>
						<td style="text-align:left;">
						<select name="id_proveedor" id="id_proveedor" class="requeridos"> ';
						if($vector['id_proveedor'] == null){echo '<option value=0>Seleccione proveedor</option>';}
						//Muestra los proveedores y si es modificacion mustra tambien si tiene trazabilidad o no
						for($i=1;$i<=$cuentap;$i++){
							if($vector['id_proveedor']== $i){
									echo '<option value='.$i.' selected="selected">'.$proveedor[$i-1]['nombre'].'</option>';
								}else{
									echo '<option value='.$i.'>'.$proveedor[$i-1]['nombre'].'</option>';}
								}
								
								if ($vector["trazabilidad"] == 1)
								{
									$vector["trazabilidad"] = "checked = 'checked'";
								}
								else{
										$vector["trazabilidad"] = "";
									}
						echo'
						</select>
						</td>
					
					</tr>
					
					<tr>
						<td class="txt_normal" width="20%" align="right"> Trazabilidad: </td>
						<td style="text-align:left;"> <input type="checkbox" name="trazabilidad" id="trazabilidad" '.$vector["trazabilidad"].' > </td>					
					</tr>
					
					<tr>
						<td class="txt_normal_neg" colspan="2" align="center">Los campos marcados con un asterisco (*) son campos obligatorios.</td>
					</tr>
					<tr>
						<td class="txt_normal_neg" style="text-align:center; " colspan="2"><div id="contenedor"></div></td>
					</tr>	
					<tr>
						<td colspan="2" align="center">
							<input type="button" value="&nbsp;Aceptar" id="aceptar" name="aceptar" class="aceptar" onClick="javascript:guardar(\''.$_action.'\')" /><input type="button" onclick="volver()" class="volver"  value="Volver" />
						</td>
					</tr>
					</table>
					</fieldset>
				</form>';
		die();
	}
//		<td style="text-align:left;"><input type="text" name="id_proveedor" id="id_proveedor" size="35" maxlength="50" value="'.($vector["id_proveedor"]!=NULL?$vector["id_proveedor"]:'1').'"></td>
?>

<?
/*#######################################################################################################################################################*/
/*################################################### OPERACIONES DE EDICION DE REGISTROS ###############################################################*/
/*#######################################################################################################################################################*/

	case 'insertar':{//Accion de insercion de un articulo a la base de datos
		//Devuelve un error si el nombre está en blanco
		if($_POST["nombre"]==""){ echo "nombre"; die(); }
        //Devuelve un error si las unidades_palet son menor o igual que 0
		if($_POST["unidades_palet"]<=0){ echo "unidades_palet"; die("unidades_palet"); }
		//Devuelve un error si las unidades no son un entero
		if(is_int($_POST["unidades"]) == "false"){  echo "unidades"; die(); }
		//Devuelve un error si el proveedor no ha sido seleccionado
		if($_POST["id_proveedor"] == 0){  echo "id_proveedor"; die(); }
		//Obtiene el ultimo ID de producto
		$id_max = maxId("productos","id_producto");
		//Se llena el array $vector con los datos de los campos pasados por $_POST
		$vector = array();
		$vector["id_producto"] = $id_max;
		$vector["nombre"] = $_POST["nombre"];
		$vector['descripcion'] = $_POST['descripcion'];
		$vector['udsxcaja'] = $_POST['udsxcaja'];
		$vector['unidades_palet'] = $_POST['unidades_palet'];
		$vector['ean'] = $_POST['ean'];
		$vector['id_proveedor'] = $_POST['id_proveedor'];
		$vector['trazabilidad'] = $_REQUEST['trazabilidad'] == TRUE? 1:0;
		//Llama a la funcion de insertarBD para la introduccion de los datos en la base de datos
		insertaBD("productos",$vector);
		die("OK");
		
	};
	
	case 'modificar':{//Accion de modificacion de un articulo
		//Comprueba que el campo del nombre no este vacio
		if($_POST["nombre"]==""){  echo "nombre"; die(); }
		//Comprueba que el campo de unidades_palet sea mayor que 0
        if($_POST["unidades_palet"]<=0){  echo "unidades_palet"; die(); }
		//Comprueba que el campo de udsxcaja sea mayor que 0
		if($_POST["udsxcaja"] <= 0 ){  echo "udsxcaja"; die(); }
		//Llena el array $vector con los datos pasados por $_POST
		$vector = array();
		$vector["nombre"] = $_POST["nombre"];
		$vector['descripcion'] = $_POST['descripcion'];
		$vector['udsxcaja'] = $_POST['udsxcaja'];
		$vector["unidades_palet"] = $_POST["unidades_palet"];
		$vector['ean'] = $_POST['ean'];
		$vector['id_producto'] = $_POST['id_producto'];
		$vector['id_proveedor'] = $_POST['id_proveedor'];
		$vector['trazabilidad'] = $_REQUEST['trazabilidad'] == TRUE? 1:0;
		//Realiza la modificacion en la vase de datos
		modificaBD("productos",$vector,"id_producto = ".$_POST["id_producto"]);
		die("OK");			
	};
	
	case 'modificarFila':{//Funcion que modifica la fila en la base de datos

		$vector = array();
		$vector['unidades'] = $_GET['unidades'];

		modificaBD("productos",$vector,"id_producto = ".$_GET["id_producto"]);
		die("OK");			

	};
	
	case 'borrar':{//Funcion que borra logicamente un articulo en la base de datos

		$vector = array();
		$vector["fecha_baja"] = date("Y-m-d H:i:s");
		
		// Borrado de dicho producto
		modificaBD("productos",$vector,"id_producto=".$_GET["id_producto"]);
		
		// Borrado de lostes con ese producto
		borraBD("lotes", "id_producto = ".$_GET["id_producto"]);
		
		// Borrado de las lineas con ese producto
		borraBD("lineas_albaran_entrega","id_producto = ".$_GET["id_producto"]);
		borraBD("lineas_albaran_recogida","id_producto = ".$_GET["id_producto"]);
		
		// Borrado de los movimientos con ese producto
		borraBD("movimientos","id_producto = ".$_GET["id_producto"]);
		
		die("OK");
		
	};
	
	
};
?>
